package com.ssy.lingxi.report.service.tally;

import com.ssy.lingxi.common.model.dto.UserLoginCacheDTO;
import com.ssy.lingxi.common.response.Wrapper;
import com.ssy.lingxi.report.api.vo.request.OperateNoticeVO;
import com.ssy.lingxi.report.entity.report.MemberTallyReportDO;
import com.ssy.lingxi.report.model.vo.response.TallyReportVO;

/**
 * 计数统计接口定义
 * @author 伍将
 * @date 2020/11/20
 * @version 2.0.0
 */
public interface ITallyReportService {

    /**
     * 获取计数统计
     * @param user 登录用户
     * @return 计数统计
     */
    Wrapper<TallyReportVO> getTallyReport(UserLoginCacheDTO user);

    /**
     * 更新计数统计
     * @param noticeVO 操作通知
     */
    void updateTallyReport(OperateNoticeVO noticeVO);

    /**
     * 统计计数
     */
    void statisticsTally();

    /**
     * 获取计数详情
     * @param user 登录用户
     * @return 计数详情
     */
    MemberTallyReportDO getDetail(UserLoginCacheDTO user);

    /**
     * 根据会员id与角色id查询统计计数
     * @author 伍将
     * @date 2020/12/22
     * @param memberId:
     * @param roleId:
     * @return 会员计数报表
     **/
    MemberTallyReportDO getTallyDetail(Long memberId, Long roleId);
}
